home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Hottest 6
/
Hottest 6 (1996)(PDSoft)[!].iso
/
software
/
fredfish
/
1092.lha
/
Programs
/
ErrorMsg
/
WhatError
/
WhatError.s
< prev
next >
Wrap
Text File
|
1994-12-21
|
7KB
|
265 lines
opt AMIGA
; version 1.04
include exec/alerts.i
include libraries/errormsg.i
include libraries/errormsg_lib.i
include utility/utility_lib.i
Start lea DOS.Name(pc),a1
move.l #37,d0
move.l 4.w,a6
jsr _LVOOpenLibrary(a6)
move.l d0,DOS.Base
bne.s DOSOpened
move.l #AT_Recovery!AG_OpenLib!AO_DOSLib,d7
jmp _LVOAlert(a6)
DOSOpened
lea ErrorMsg.Name(pc),a1
moveq #1,d0
jsr _LVOOpenLibrary(a6)
move.l d0,ErrorMsg.Base
bne.s ErrorMsgOpened
move.l #NoErrorMsg.MSG,d1
move.l DOS.Base(pc),a6
jsr _LVOPutStr(a6)
bra CloseDOS
ErrorMsgOpened
move.l DOS.Base(pc),a6
move.l #Args.Template,d1
move.l #Args.Array,d2
moveq #0,d3
jsr _LVOReadArgs(a6)
move.l d0,Args.RDArgs
bne.s ArgsRead
jsr _LVOIoErr(a6)
move.l #ERMSYS_DOS,d1
move.l #ERMSUB_IoErr,d2
lea ReadArgsFailed.MSG(pc),a0
move.l ErrorMsg.Base(pc),a6
jsr _LVOPutErrorMsg(a6)
bra CloseErrorMsg
ArgsRead
lea SystemTranslation.Array(pc),a1
move.l Args.Array(pc),a0
bsr TranslateWord
cmp.l #-1,d0
bne.s SystemOK
move.l #UnknownSystem.MSG,d1
move.l DOS.Base(pc),a6
jsr _LVOPutStr(a6)
lea SystemTranslation.Array(pc),a2
bsr PrintList
move.l #SubAvailable.MSG,d1
jsr _LVOPutStr(a6)
lea SubSystemTranslation.Array(pc),a2
bsr PrintList
bra.s ErrorWritten
SystemOK
move.l d0,d3
lea SubSystemTranslation.Array(pc),a1
move.l Args.Array+8(pc),d0
beq.s SubOK
move.l d0,a0
bsr.s TranslateWord
cmp.l #-1,d0
bne.s SubOK
moveq #ERMSUB_Generic,d0
SubOK move.l d0,d2
move.l d3,d1
move.l Args.Array+4(pc),a0
move.l (a0),d0
suba.l a0,a0
move.l ErrorMsg.Base(pc),a6
jsr _LVOPutErrorMsg(a6)
tst.l d0
bne.s ErrorWritten
move.l #UnavailableCode.MSG,d1
move.l DOS.Base(pc),a6
jsr _LVOPutStr(a6)
ErrorWritten
move.l Args.RDArgs(pc),d1
move.l DOS.Base(pc),a6
jsr _LVOFreeArgs(a6)
CloseErrorMsg
move.l ErrorMsg.Base(pc),a1
move.l 4.w,a6
jsr _LVOCloseLibrary(a6)
CloseDOS
move.l DOS.Base(pc),a1
move.l 4.w,a6
jmp _LVOCloseLibrary(a6)
TranslateWord ; Result=TranslateWord(String,CompArray)(A0,A1)
move.l ErrorMsg.Base(pc),a6
move.l emb_UtilityBase(a6),a6
move.l a0,a2
move.l a1,a3
.Loop move.l (a3)+,d0
move.l (a3)+,d2
cmp.l #-1,d0
beq.s .NotFound
add.l #KW,d0
move.l d0,a1 ; string1=Known one (stored in increasing order)
move.l a2,a0 ; string2=Unknown one (argument)
jsr _LVOStricmp(a6)
tst.l d0
bgt.s .Loop
bne.s .NotFound
move.l d2,d0
rts
.NotFound
moveq #-1,d0
rts
PrintList ; PrintList(List)(A2)
move.l DOS.Base(pc),a6
.Loop cmp.l #-1,(a2)
beq.s .Finished
move.l (a2),d1
add.l #KW,d1
jsr _LVOPutStr(a6)
move.l #LF,d1
jsr _LVOPutStr(a6)
addq.l #8,a2
bra.s .Loop
.Finished
rts
SystemTranslation.Array
dc.l AMIGAGUIDE-KW,ERMSYS_AMIGAGUIDE ; sorted list
dc.l ARP-KW,ERMSYS_ARP
dc.l AUDIO-KW,ERMSYS_AUDIO
dc.l CLIPBOARD-KW,ERMSYS_CLIPBOARD
dc.l COMMODITIES-KW,ERMSYS_COMMODITIES
dc.l CONSOLE-KW,ERMSYS_CONSOLE
dc.l DATATYPES-KW,ERMSYS_DATATYPES
dc.l DISKFONT-KW,ERMSYS_DISKFONT
dc.l DOS-KW,ERMSYS_DOS
dc.l ERRORMSG-KW,ERMSYS_ERRORMSG
dc.l EXEC-KW,ERMSYS_EXEC
dc.l EXPANSION-KW,ERMSYS_EXPANSION
dc.l GADTOOLS-KW,ERMSYS_GADTOOLS
dc.l GAMEPORT-KW,ERMSYS_GAMEPORT
dc.l GRAPHICS-KW,ERMSYS_GRAPHICS
dc.l IFFPARSE-KW,ERMSYS_IFFPARSE
dc.l INPUT-KW,ERMSYS_INPUT
dc.l INTUITION-KW,ERMSYS_INTUITION
dc.l KEYBOARD-KW,ERMSYS_KEYBOARD
dc.l MUI-KW,ERMSYS_MUI
dc.l NARRATOR-KW,ERMSYS_NARRATOR
dc.l PARALLEL-KW,ERMSYS_PARALLEL
dc.l POWERPACKER-KW,ERMSYS_POWERPACKER
dc.l PRINTER-KW,ERMSYS_PRINTER
dc.l SCSIDISK-KW,ERMSYS_SCSIDISK
dc.l SERIAL-KW,ERMSYS_SERIAL
dc.l TIMER-KW,ERMSYS_TIMER
dc.l TRACKDISK-KW,ERMSYS_TRACKDISK
dc.l TRANSLATOR-KW,ERMSYS_TRANSLATOR
dc.l XFD-KW,ERMSYS_XFD
dc.l GADTOOLSBOX-KW,ERMSYS_GADTOOLSBOX
dc.l GUIFRONT-KW,ERMSYS_GUIFRONT
dc.l XPK-KW,ERMSYS_XPK
dc.l -1
SubSystemTranslation.Array
dc.l CXBROKER-KW,ERMSUB_CxBroker
dc.l CXOBJERROR-KW,ERMSUB_CxObjError
dc.l FAULT-KW,ERMSUB_Fault
dc.l IOERR-KW,ERMSUB_IoErr
dc.l MAKEVPORT-KW,ERMSUB_MakeVPort
dc.l MATCHFIRST-KW,ERMSUB_MatchFirst
dc.l MATCHNEXT-KW,ERMSUB_MatchNext
dc.l MRGCOP-KW,ERMSUB_MrgCop
dc.l MUIAUTOERROR-KW,ERMSUB_MUIAutoError
dc.l NOLIBRARY-KW,ERMSUB_NoLibrary ; new for V1.02
dc.l NOMEMORY-KW,ERMSUB_NoMemory
dc.l OPENSCREEN-KW,ERMSUB_OpenScreen
dc.l OPENSCREENTAGLIST-KW,ERMSUB_OpenScreenTagList
dc.l LOADGUI-KW,ERMSUB_LoadGUI
dc.l SETUPSCREEN-KW,ERMSUB_SetupScreen
dc.l OPENAWINDOW-KW,ERMSUB_OpenAWindow
dc.l CREATEGUIA-KW,ERMSUB_CreateGUIA
dc.l -1
DOS.Base dc.l 0
ErrorMsg.Base dc.l 0
Args.RDArgs dc.l 0
Args.Array dc.l 0,0,0
DOS.Name dc.b 'dos.library',0
ErrorMsg.Name dc.b 'errormsg.library',0
NoErrorMsg.MSG dc.b 'You need errormsg.library V1.0+ in your LIBS: directory.',10,0
ReadArgsFailed.MSG dc.b 'ReadArgs() failed',0
UnknownSystem.MSG dc.b 'Unknown system, currently available are:',10,0
SubAvailable.MSG dc.b 10,'Known Subsytems (any other for ERMSUB_Generic):',10,0
UnavailableCode.MSG dc.b 'Unavailable code !'
LF dc.b 10,0
Args.Template dc.b 'SYSTEM/A,CODE/N/A,SUBSYSTEM',0
KW ; base of keywords (relative displacements avoid too big Reloc tables)
; ******************** System identificators ***********************
DOS dc.b 'dos',0
EXEC dc.b 'exec',0
GRAPHICS dc.b 'graphics',0
INTUITION dc.b 'intuition',0
IFFPARSE dc.b 'iffparse',0
AUDIO dc.b 'audio',0
GAMEPORT dc.b 'gameport',0
NARRATOR dc.b 'narrator',0
PARALLEL dc.b 'parallel',0
PRINTER dc.b 'printer',0
SCSIDISK dc.b 'scsidisk',0
SERIAL dc.b 'serial',0
TRACKDISK dc.b 'trackdisk',0
CLIPBOARD dc.b 'clipboard',0
CONSOLE dc.b 'console',0
INPUT dc.b 'input',0
KEYBOARD dc.b 'keyboard',0
TIMER dc.b 'timer',0
AMIGAGUIDE dc.b 'amigaguide',0
ARP dc.b 'arp',0
COMMODITIES dc.b 'commodities',0
ERRORMSG dc.b 'errormsg',0
EXPANSION dc.b 'expansion',0
GADTOOLS dc.b 'gadtools',0
POWERPACKER dc.b 'powerpacker',0
TRANSLATOR dc.b 'translator',0
DATATYPES dc.b 'datatypes',0
DISKFONT dc.b 'diskfont',0
MUI dc.b 'muimaster',0
XFD dc.b 'xfdmaster'
GADTOOLSBOX dc.b 'gadtoolsbox',0
GUIFRONT dc.b 'guifront',0
XPK dc.b 'xpk',0
; ********************* Subsystem identificators *******************
IOERR dc.b 'ioerr',0
MATCHFIRST dc.b 'matchfirst',0
MATCHNEXT dc.b 'matchnext',0
FAULT dc.b 'fault',0
NOLIBRARY dc.b 'nolibrary',0
NOMEMORY dc.b 'nomemory',0
MAKEVPORT dc.b 'makevport',0
MRGCOP dc.b 'mrgcop',0
OPENSCREEN dc.b 'openscreen',0
OPENSCREENTAGLIST dc.b 'openscreentaglist',0
CXBROKER dc.b 'cxbroker',0
CXOBJERROR dc.b 'cxobjerror',0
MUIAUTOERROR dc.b 'muiautoerror',0
LOADGUI dc.b 'loadgui',0
SETUPSCREEN dc.b 'setupscreen',0
OPENAWINDOW dc.b 'openawindow',0
CREATEGUIA dc.b 'createguia',0